/*
 * Copyright (C), 2002-2017, 苏宁易购电子商务有限公司
 * FileName: StringUtils
 * Author:   15030469 胡丹
 * Date:     2017/2/17 9:57
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.suning.sawp.service.util;

import org.apache.commons.lang3.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 〈字符串参数的一些公用方法〉<br>
 *
 * @author 15030469 胡丹
 */
public class StringParamUtils {
    private StringParamUtils() {
        // empty method
    }

    /**
     * 非空校验
     *
     * @param input
     * @return
     */
    public static boolean checkIsNotEmpty(String input) {
        return StringUtils.isNotEmpty(StringUtils.trim(input));
    }

    /**
     * 是空校验
     *
     * @param input
     * @return
     */
    public static boolean checkIsEmpty(String input) {
        return StringUtils.isEmpty(StringUtils.trim(input));
    }

    /**
     * 批量是空校验
     *
     * @param inputs
     * @return
     */
    public static boolean checkIsEmpty(String... inputs) {
        for (String input : inputs) {
            if (checkIsEmpty(input)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 功能描述:正则校验手机号 <br>
     *
     * @param input
     * @return
     */
    public static boolean checkIsMobileNo(String input) {
        Pattern p = Pattern.compile("^1[34578][0-9](\\*{4}|\\d{4})\\d{4}$");
        Matcher m = p.matcher(input);
        return m.matches();
    }

    /**
     * 手机号脱敏方法
     *
     * @param mobileNo
     * @return
     */
    public static String desensitizeMobilePhone(String mobileNo) {
        if (checkIsEmpty(mobileNo)) {
            return "";
        }
        return StringUtils.left(mobileNo, 3).concat(StringUtils.removeStart(
                StringUtils.leftPad(StringUtils.right(mobileNo, 4), StringUtils.length(mobileNo), "*"), "***"));
    }

    /**
     * 截取字符串，用apache的方法，不用担心end是否超出长度
     *
     * @param obj
     * @param start
     * @param end
     * @return
     */
    public static String subString(Object obj, int start, int end) {
        if (null == obj) {
            return StringUtils.EMPTY;
        }
        return StringUtils.substring(obj.toString(), start, end);
    }

    /**
     * 功能描述: 会员姓名脱敏<br>
     *
     * @param userName
     * @return
     */
    public static String clearUserName(String userName) {
        if (StringUtils.isEmpty(userName)) {
            return "顾客";
        } else if (userName.length() == 1) {
            return userName + "*";
        } else {
            String firstName = StringUtils.substring(userName, 0, 1);
            int lastNameLength = userName.length() - 1;
            String lastName = "";
            for (int i = 0; i < lastNameLength; i++) {
                lastName += "*";
            }
            return firstName + lastName;
        }

    }
}
